package translate;

import com.memetix.mst.language.Language;
import com.memetix.mst.translate.Translate;

public class BingTranslator {
	public static String translate(String text, String sourceLanguage,
			String toLanguage) {
		Translate.setKey("2A621BAD65189A8EE289D80D75CD99EE3C8A7A7A");		
		String translatedText = null;		
		try {
			translatedText = Translate.execute(text, getLangByCode(sourceLanguage),
					getLangByCode(toLanguage));
		} catch (Exception e) {
			translatedText = text;
		}
		return translatedText;
	}

	private static Language getLangByCode(String langCode) {
		if (langCode.equalsIgnoreCase("ar")) {
			return Language.ARABIC;
		}
		if (langCode.equalsIgnoreCase("bg")) {
			return Language.BULGARIAN;
		}
		if (langCode.equalsIgnoreCase("ca")) {
			return Language.CATALAN;
		}
		if (langCode.equalsIgnoreCase("cs")) {
			return Language.CZECH;
		}
		if (langCode.equalsIgnoreCase("da")) {
			return Language.DANISH;
		}
		if (langCode.equalsIgnoreCase("de")) {
			return Language.GERMAN;
		}
		if (langCode.equalsIgnoreCase("el")) {
			return Language.GREEK;
		}
		if (langCode.equalsIgnoreCase("en")) {
			return Language.ENGLISH;
		}
		if (langCode.equalsIgnoreCase("es")) {
			return Language.SPANISH;
		}
		if (langCode.equalsIgnoreCase("et")) {
			return Language.ESTONIAN;
		}
		if (langCode.equalsIgnoreCase("fi")) {
			return Language.FINNISH;
		}
		if (langCode.equalsIgnoreCase("fr")) {
			return Language.FRENCH;
		}
		if (langCode.equalsIgnoreCase("he")) {
			return Language.HEBREW;
		}
		if (langCode.equalsIgnoreCase("hi")) {
			return Language.HINDI;
		}
		if (langCode.equalsIgnoreCase("hu")) {
			return Language.HUNGARIAN;
		}
		if (langCode.equalsIgnoreCase("id")) {
			return Language.INDONESIAN;
		}
		if (langCode.equalsIgnoreCase("it")) {
			return Language.ITALIAN;
		}
		if (langCode.equalsIgnoreCase("ja")) {
			return Language.JAPANESE;
		}
		if (langCode.equalsIgnoreCase("ko")) {
			return Language.KOREAN;
		}
		if (langCode.equalsIgnoreCase("lt")) {
			return Language.LITHUANIAN;
		}
		if (langCode.equalsIgnoreCase("lv")) {
			return Language.LATVIAN;
		}
		if (langCode.equalsIgnoreCase("nl")) {
			return Language.DUTCH;
		}
		if (langCode.equalsIgnoreCase("no")) {
			return Language.NORWEGIAN;
		}
		if (langCode.equalsIgnoreCase("pl")) {
			return Language.POLISH;
		}
		if (langCode.equalsIgnoreCase("pt")) {
			return Language.PORTUGUESE;
		}
		if (langCode.equalsIgnoreCase("ro")) {
			return Language.ROMANIAN;
		}
		if (langCode.equalsIgnoreCase("ru")) {
			return Language.RUSSIAN;
		}
		if (langCode.equalsIgnoreCase("sk")) {
			return Language.SLOVAK;
		}
		if (langCode.equalsIgnoreCase("sl")) {
			return Language.SLOVENIAN;
		}
		if (langCode.equalsIgnoreCase("sv")) {
			return Language.SWEDISH;
		}
		if (langCode.equalsIgnoreCase("th")) {
			return Language.THAI;
		}
		if (langCode.equalsIgnoreCase("tr")) {
			return Language.TURKISH;
		}
		if (langCode.equalsIgnoreCase("uk")) {
			return Language.UKRANIAN;
		}
		if (langCode.equalsIgnoreCase("vi")) {
			return Language.VIETNAMESE;
		}
		if (langCode.equalsIgnoreCase("zh")) {
			return Language.CHINESE_SIMPLIFIED;
		}
		return Language.ENGLISH;
	}
}
